- JNI aes256加密,hmac256签名及读取应用签名demo
- https://github.com/cigk/Android_Hmacs256_Aes256_Demo
Jni 应用开发流程
1. 定义Native 接口
1 | public class JniUtil { |
2. javah -jin “全类名” 生成头文件
执行javah命令时必须在src根目录,如”E:\KKY\android_assistant\app\src\main\java\”,否则会报错, 生成的文件位于当前目录下,接口文件如下:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21/* DO NOT EDIT THIS FILE - it is machine generated */
/* Header for class com_kuaikuaiyu_assistant_utils_JniUtil */
extern "C" {
/*
* Class: com_kuaikuaiyu_assistant_utils_JniUtil
* Method: sign
* Signature: (Ljava/lang/String;)Ljava/lang/String;
*/
JNIEXPORT jstring JNICALL Java_com_kuaikuaiyu_assistant_utils_JniUtil_demoMethod
(JNIEnv *, jclass, jstring);
}
3. 实现头文件
1 | JNIEXPORT jstring JNICALL Java_com_kuaikuaiyu_assistant_utils_JniUtil_sign |
Jni开发场景
1. Java调用c方法
接口方法
1 | /** |
头文件
1 | /* DO NOT EDIT THIS FILE - it is machine generated */ |
c代码实现
1 |
|
2. c回调java方法
接口定义
5个方法对应5中应用场景,方法说明在c实现里1
2
3
4
5public native void callMethod1();
public native void callMethod2();
public native void callMethod3();
public native void callMethod4();
public native void callMethod5();
c实现
1 | #include "com_example_ndkcallback_DataProvider.h" |